﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sociedad.BL;
using Sociedad.DAL;

public partial class SOA_BandejaWF_BandejaOperador : System.Web.UI.Page
{
    WfTipoDocumentoBL blTipDocWF = new WfTipoDocumentoBL();
    WfDocumentoBL blDocWF = new WfDocumentoBL();
    Wfs_SeguimientoDocumento beDocWF = new Wfs_SeguimientoDocumento();

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!Page.IsPostBack)
            {
                Inicializar();
            }
            else
            {
                lblMsj.Visible = false;
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error al intentar cargar los datos, volver a intentar.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }

    private void Inicializar()
    {
        // Cargar tipo de documento WF
        List<Wfs_TipoDocumento> lstTipDocWF = new List<Wfs_TipoDocumento>();
        Wfs_TipoDocumento beTipDoc = new Wfs_TipoDocumento();
        beTipDoc.ctdo_Codigo = "T";
        beTipDoc.ctdo_Descripción = "<Todos>";
        lstTipDocWF = blTipDocWF.Listar_TipoDocumentoWF();
        List<Wfs_TipoDocumento> lstTipDocWF1 = new List<Wfs_TipoDocumento>();
        lstTipDocWF.Add(beTipDoc);
        for (int i = 1; i <= lstTipDocWF.Count(); i++)
        {
            lstTipDocWF1.Add(lstTipDocWF[i - 1]);
        }
        ddlTipDocWF.DataSource = lstTipDocWF1;
        ddlTipDocWF.DataTextField = "ctdo_Descripción";
        ddlTipDocWF.DataValueField = "ctdo_Codigo";
        ddlTipDocWF.SelectedValue = "T";
        ddlTipDocWF.DataBind();

        Actualizar_Grilla();
    }

    private void Actualizar_Grilla()
    {
        grvListaBandeja.DataSource = blDocWF.Listar_DocumentosBandeja(Constantes.documento_BandejaOperador, ddlTipDocWF.SelectedValue);
        grvListaBandeja.DataBind();
    }

    protected void imb_Cerrar_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect("~/Principal.aspx");
    }

    protected void imb_Enviar_Click(object sender, ImageClickEventArgs e)
    {
        int nFilSel = 0;
        try
        {
            foreach (GridViewRow grvRow in grvListaBandeja.Rows)
            {
                CheckBox chk = (CheckBox)grvRow.FindControl("chkDoc");
                if (chk != null && chk.Checked)
                {
                    nFilSel++;
                }
            }
            if (nFilSel == 0)
            {
                modalPopupSelect.Show();
            }
            else
            {
                foreach (GridViewRow grvRow in grvListaBandeja.Rows)
                {
                    CheckBox chk = (CheckBox)grvRow.FindControl("chkDoc");
                    if (chk != null && chk.Checked)
                    {
                        beDocWF.ctdo_Codigo = grvRow.Cells[0].Text;
                        beDocWF.cedo_CodDoc = grvRow.Cells[1].Text;
                        beDocWF.cprm_EnviaTipUO = Session[Constantes.session_CodTipUO].ToString();
                        beDocWF.cent_EnviaUO = Session[Constantes.session_CodUniOrg].ToString();
                        beDocWF.usr_EnviaUser = Session[Constantes.session_CodUsuario].ToString();
                        beDocWF.csdo_Comentario = "Documento enviado por el operador";
                        if (beDocWF.ctdo_Codigo == Constantes.wfTipDoc_RegistroLegajo)
                            beDocWF.cprm_Estado = "2203";
                        else
                            if (beDocWF.ctdo_Codigo == Constantes.wfTipDoc_SolicitudDesignacion)
                                beDocWF.cprm_Estado = "2303";

                        String[] cRpta = blDocWF.Registrar_DocumentoWF(beDocWF, 'S').Split('@');
                        if (cRpta[0] == "1")
                        {
                            Actualizar_Grilla();
                            if (nFilSel == 1)
                            {
                                lblMsj.Text = "El documento ha sido derivado con éxito al Evaluador.";
                            }
                            else
                            {
                                lblMsj.Text = "Los documentos han sido derivado con éxito al Evaluador.";
                            }
                            lblMsj.ForeColor = System.Drawing.Color.Green;
                            lblMsj.Visible = true;
                        }
                        else
                        {
                            if (String.IsNullOrEmpty(cRpta[1]))
                            {
                                lblMsj.Text = "Se produjo un error inesperado, cierre la ventana y vuelva a intentar enviar.";
                                lblMsj.ForeColor = System.Drawing.Color.Blue;
                                lblMsj.Visible = true;
                            }
                            else
                            {
                                lblMsj.Text = cRpta[1];
                                lblMsj.ForeColor = System.Drawing.Color.Blue;
                                lblMsj.Visible = true;
                            }
                        }                        
                    }
                }
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error al intentar verificar los documentos seleccionados, volver a intentar.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }

    protected void ddlTipDocWF_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            Actualizar_Grilla();
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error al intentar cargar los datos, volver a intentar.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }

}